<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
DataInputBlock (POI API Documentation)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.poi.poifs.storage.DataInputBlock class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="DataInputBlock (POI API Documentation)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DataInputBlock.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/poi/poifs/storage/DocumentBlock.html" title="class in org.apache.poi.poifs.storage"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/poi/poifs/storage/DataInputBlock.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="DataInputBlock.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.poi.poifs.storage</FONT>
<BR>
Class DataInputBlock</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.poi.poifs.storage.DataInputBlock</B>
</PRE>
<HR>
<DL>
<DT><PRE>public final class <B>DataInputBlock</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
Wraps a <tt>byte</tt> array and provides simple data input access.
 Internally, this class maintains a buffer read index, so that for the most part, primitive
 data can be read in a data-input-stream-like manner.<p/>

 Note - the calling class should call the <A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#available()"><CODE>available()</CODE></A> method to detect end-of-buffer
 and move to the next data block when the current is exhausted.
 For optimisation reasons, no error handling is performed in this class.  Thus, mistakes in
 calling code ran may raise ugly exceptions here, like <CODE>ArrayIndexOutOfBoundsException</CODE>,
 etc .<p/>

 The multi-byte primitive input methods (<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUShortLE()"><CODE>readUShortLE()</CODE></A>, <A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readIntLE()"><CODE>readIntLE()</CODE></A> and
 <A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readLongLE()"><CODE>readLongLE()</CODE></A>) have corresponding 'spanning read' methods which (when required) perform
 a read across the block boundary.  These spanning read methods take the previous
 <A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage"><CODE>DataInputBlock</CODE></A> as a parameter.
 Reads of larger amounts of data (into <tt>byte</tt> array buffers) must be managed by the caller
 since these could conceivably involve more than two blocks.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Josh Micich</DD>
</DL>
<HR>

<P>

<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#available()">available</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readFully(byte[], int, int)">readFully</A></B>(byte[]&nbsp;buf,
          int&nbsp;off,
          int&nbsp;len)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads <tt>len</tt> bytes from this block into the supplied buffer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readIntLE()">readIntLE</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads an <tt>int</tt> which was encoded in <em>little endian</em> format.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readIntLE(org.apache.poi.poifs.storage.DataInputBlock, int)">readIntLE</A></B>(<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</A>&nbsp;prevBlock,
          int&nbsp;prevBlockAvailable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads an <tt>int</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readLongLE()">readLongLE</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads a <tt>long</tt> which was encoded in <em>little endian</em> format.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readLongLE(org.apache.poi.poifs.storage.DataInputBlock, int)">readLongLE</A></B>(<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</A>&nbsp;prevBlock,
           int&nbsp;prevBlockAvailable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads a <tt>long</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUByte()">readUByte</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUShortLE()">readUShortLE</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads a <tt>short</tt> which was encoded in <em>little endian</em> format.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUShortLE(org.apache.poi.poifs.storage.DataInputBlock)">readUShortLE</A></B>(<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</A>&nbsp;prevBlock)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads a <tt>short</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="available()"><!-- --></A><H3>
available</H3>
<PRE>
public int <B>available</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readUByte()"><!-- --></A><H3>
readUByte</H3>
<PRE>
public int <B>readUByte</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readUShortLE()"><!-- --></A><H3>
readUShortLE</H3>
<PRE>
public int <B>readUShortLE</B>()</PRE>
<DL>
<DD>Reads a <tt>short</tt> which was encoded in <em>little endian</em> format.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readUShortLE(org.apache.poi.poifs.storage.DataInputBlock)"><!-- --></A><H3>
readUShortLE</H3>
<PRE>
public int <B>readUShortLE</B>(<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</A>&nbsp;prevBlock)</PRE>
<DL>
<DD>Reads a <tt>short</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readIntLE()"><!-- --></A><H3>
readIntLE</H3>
<PRE>
public int <B>readIntLE</B>()</PRE>
<DL>
<DD>Reads an <tt>int</tt> which was encoded in <em>little endian</em> format.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readIntLE(org.apache.poi.poifs.storage.DataInputBlock, int)"><!-- --></A><H3>
readIntLE</H3>
<PRE>
public int <B>readIntLE</B>(<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</A>&nbsp;prevBlock,
                     int&nbsp;prevBlockAvailable)</PRE>
<DL>
<DD>Reads an <tt>int</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readLongLE()"><!-- --></A><H3>
readLongLE</H3>
<PRE>
public long <B>readLongLE</B>()</PRE>
<DL>
<DD>Reads a <tt>long</tt> which was encoded in <em>little endian</em> format.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readLongLE(org.apache.poi.poifs.storage.DataInputBlock, int)"><!-- --></A><H3>
readLongLE</H3>
<PRE>
public long <B>readLongLE</B>(<A HREF="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</A>&nbsp;prevBlock,
                       int&nbsp;prevBlockAvailable)</PRE>
<DL>
<DD>Reads a <tt>long</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readFully(byte[], int, int)"><!-- --></A><H3>
readFully</H3>
<PRE>
public void <B>readFully</B>(byte[]&nbsp;buf,
                      int&nbsp;off,
                      int&nbsp;len)</PRE>
<DL>
<DD>Reads <tt>len</tt> bytes from this block into the supplied buffer.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/DataInputBlock.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/poi/poifs/storage/DocumentBlock.html" title="class in org.apache.poi.poifs.storage"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/poi/poifs/storage/DataInputBlock.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="DataInputBlock.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            
</BODY>
</HTML>
